#include <iostream>
#include "Core/MaggotApp.h"
#include "Scene/LocalScene.h"
#include "Scene/LocalProcess.h"
#include "Scene/BrbflutProcess.h"
#include "Scene/IrradianceHdrProcess.h"
#include "Scene/IrradianceCubemapProcess.h"
#include "Scene/IrradianceProcess.h"
#include "Scene/PrefilterenvmapProcess.h"
#include "Scene/HdrProcess.h"
#include "Scene/PbrProcess.h"
#include "Game/Process/CoordinateProcess.h"

#include "Render/Shader/GlobalShader.inl"
#include "Scene/LocalShader.inl"


int main()
{
	MaggotApp::Get().SetWindowTitle(L"Moggot Engine");
	MaggotApp::Get().SetWindowSize(1600, 900);
	MaggotApp::Get().SetGameScene<LocalScene>();

	// Offline process
	MaggotApp::Get().AddRenderProcess<BrbflutProcess>();
	MaggotApp::Get().AddRenderProcess<IrradianceHdrProcess>();
	MaggotApp::Get().AddRenderProcess<IrradianceCubemapProcess>();
	MaggotApp::Get().AddRenderProcess<IrradianceProcess>();
	MaggotApp::Get().AddRenderProcess<PrefilterenvmapProcess>();

	
	MaggotApp::Get().AddRenderProcess<LocalProcess>();
	MaggotApp::Get().AddRenderProcess<HdrProcess>();
	MaggotApp::Get().AddRenderProcess<PbrProcess>();
	MaggotApp::Get().AddRenderProcess<CoordinateProcess>("LocalProcess");

	MaggotApp::Get().Run();
	return 0;
}
